App.Error = angular.module('Error', []).
controller('Error.Ctrl', ['$scope', '$rootScope', function ($scope, $rootScope) {
}]).
service('Error.Service', ['MainApp.ConfigService', 'Error.Factory', function (Config, ErrorBase) {
	this.BaseError = function () {
		return new ErrorBase(Config.Error.DefaultError);
	}
	this.ApiError = function () {
		return new ErrorBase({
			type: 'ApiError',
			message: 'Wystąpił błąd podczas połączenia z serwerem.'
		});
	}
	this.NonExistingUserError = function (userName) {
		return new ErrorBase({
			type: 'NonExistingUserError',
			message: 'Taki użytkownik nie istnieje: '+userName
		});
	}
	this.BadLoginDataError = function () {
		return new ErrorBase({
			type: 'BadLoginDataError',
			message: 'Błędne dane logowania'
		});
	}
}]).
factory('Error.Factory', [function () {
	return function Error (obj) {
		var that = this,
			type,
			message;
		function getType () {
			return type;
		}
		function getMessage () {
			return message;
		}
		(function construct () {
			that.getType = getType;
			that.getMessage = getMessage;
			type = obj.type;
			message = obj.message;
		})();
	}
}]);